When a user requests that an electronic document, generated by an application program, be processed for printing, a print subsystem on the user's client device processes the electronic document to generate print data. The print data generated by the subsystem, which is a rasterized version of the electronic document, is then sent to a printing device for printing. This rasterized print data includes all of the information required by the printing device to print the electronic document reflected in the print data.
For example, a user creates an electronic document using a word processing application on a PC. The user then selects a print option in the word processing application to request that the electronic document be printed at a particular printer. The print subsystem on the PC processes the electronic document to generate rasterized print data in a format supported by the particular printer, and sends the rasterized print data to the particular printer.
Generating print data conventionally involves a client print driver that is specific to the target printing device. That is, a client print driver converts data into a format supported by the target printing device. Therefore, in order for a client device to correctly print to a particular printing device using this conventional print driver system, the client device must have installed on it a current print driver for the particular printing device.
Locating and installing client print drivers can be difficult and time-consuming. Furthermore, if the capabilities of a printing device changes, then generating a new client print driver and distributing the new client print driver to a large number of users having an outdated version of the client print driver may be required. Also, print drivers are not always available for all operating systems.
Using another conventional system, a client machine that does not have a client print driver corresponding to a particular printing device may print to the printing device if the device is associated with a dedicated print server. The client may transmit print data to the dedicated print server, which formats the print data for the target printing device and forwards the formatted print data to the target device. However, in order to print through such a dedicated server, the client must know the IP address of the server. Also, the options and capabilities of the available print devices may not be accessible by a client that is printing through a dedicated server. Therefore, the client using the dedicated server may not be able to take full advantage of the features provided by the printing devices.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.